/**
 * 发送GET请求
 * 技术栈：function + ajax + callback
 * @param {String} url 请求地址 
 * @param {String} params 请求参数   格式：参数名=值&....&参数名=值
 * @param {Function} callback  回调函数
 * @param {Function} headersFn 自定义请求头
 * @return undefined
 */

function get(url, params, callback, headersFn) {
    //创建xhr对象
    const xhr = new XMLHttpRequest()
    //监听请求状态
    xhr.onreadystatechange = function () {
        //判断后端返回数据后在处理
        if (this.readyState === 4) {
            if (this.status === 200) {
                let res = JSON.parse(this.responseText)
                callback(res)
            } else {
                alert('请求失败', this.status)
            }
        }
    }
    xhr.open('get', `${url}?${params}`)
    if (headersFn) headersFn(xhr)
    xhr.send(null)
}



/**
* 发送POST请求
* 技术栈：function + ajax + callback封装get/post请求
* @param {String} url 请求地址 
* @param {String} params 请求参数   格式：参数名=值&....&参数名=值
* @param {Function} callback  回调函数
* @param {Function} headersFn 自定义请求头
* @return undefined
*/
function post(url, params, callback, headersFn = null) {
    let xhr = new XMLHttpRequest
    xhr.onreadystatechange = function () {
        if (this.readyState === 4) {
            if (this.status === 200) {
                let res = JSON.parse(this.responseText)
                callback(res)
            } else {
                console.log('请求失败', this.status);

            }
        }

    }
    xhr.open('post', `${url}`)
    //请求头
    xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded')
    if (headersFn0) headersFn(xhr)
    xhr.send(params)
}
